var store = new Ext.data.JsonStore({
	storeId : 'myStore',
	pageSize : 50,
	autoLoad : true,
	proxy : {
		type : 'ajax',
		url : '/codemaker/columns.json',
		reader : {
			type : 'json',
			root : 'data',
			totalProperty : 'totalPage',
			idProperty : 'name'
		}
	},
	fields : [ 'name', 'code', 'width', 'search', 'sort', 'select' ]
});
var sm = Ext.create('Ext.selection.CheckboxModel');
var grid = Ext.create('Ext.grid.GridPanel', {
	id : 'mygrid',
	title : '表格列设置',
	store : store,
	dockedItems : [ {
		xtype : 'toolbar',
		items : [ {
			text : '新增',
			tooltip : '新增属性列',
			listeners : {
				click : function() {
					openColumnWindow('new');
				}
			}
		}, {
			text : '编辑',
			tooltip : '编辑<br>不建议使用编辑功能，建议删除后重新添加。',
			listeners : {
				click : function() {
					openColumnWindow('edit');
				}
			}
		}, {
			text : '删除',
			tooltip : '删除属性列',
			listeners : {
				click : function() {
					var selected = grid.getSelectionModel().getSelection();
					if(selected.length == 0){
						Ext.MessageBox.show({
				           title: '错误',
				           msg: '删除项选择有误，请至少选择一项删除',
				           buttons: Ext.MessageBox.OK,
				           icon: Ext.MessageBox.ERROR
				       });
					} else {
						var deleteParam = '';
						Ext.Array.each(selected, function(value, index, countriesItSelf) {
							deleteParam += value.data.code;
						    if(index < selected.length-1){
						    	deleteParam += ',';
						    }
						});
						
						Ext.Ajax.request({
						     url: '/codemaker/deleteGridColumn.json',
						     params:{code:deleteParam},
						     success: function(response, opts) {
						         var result = Ext.decode(response.responseText);
						         if(result.success){
						        	 grid.store.reload();
						         } else {
						        	 Ext.MessageBox.show({
								           title: '错误',
								           msg: result.message,
								           buttons: Ext.MessageBox.OK,
								           icon: Ext.MessageBox.ERROR
								       });
						         }
						     },

						     failure: function(response, opts) {
						    	 Ext.MessageBox.show({
							           title: '错误',
							           msg: response.status,
							           buttons: Ext.MessageBox.OK,
							           icon: Ext.MessageBox.ERROR
							       });
						     }
						 });
					}
					
				}
			}
		},'-', {
			text : '刷新',
			tooltip : '刷新数据',
			listeners : {
				click : function() {
					grid.store.reload();
				}
			}
		}]
	} ],
	forceFit : false,
	height : 400,
	rowLines : true,
	columnLines : true,
	selModel : sm,
	viewConfig : {
		enableTextSelection : false
	},
	columns : [
		{
			text : '字段名字',
			dataIndex : 'name',
			width : 200
		},
		{
			text : '编码',
			dataIndex : 'code',
			width : 200
		},
		{
			text : '表格宽度',
			dataIndex : 'width',
			width : 100
		},
		{
			text : '配置下拉菜单',
			dataIndex : 'select',
			width : 250,
			renderer:function(value, record){
				var select = record.record.data.select;
				if(select !=null)
					return '类型：'+select.type+'， 类：'+select.clazz;
				else
					return value;
			}
		},
		{
			text : '排序',
			dataIndex : 'sort',
			width : 180
		},
		{
			text : '是否查询条件',
			dataIndex : 'search',
			width : 100,
			renderer:function(value, record){
				if(value)
					return '<font color="red">是</font>';
				else
					return '否';
			}
		}
	],
	listeners : {
		itemdblclick : function(g, record, item, index, e, eOpts) {
			openColumnWindow('edit');
		}
	}
});
function getSelected(theGrid) {
	var sel = theGrid.getSelectionModel().getSelection();
	return sel;
}